package cn.hsp.torch;

import android.content.Context;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraManager;

/**
 * 厦门大学计算机专业 | 前华为工程师
 * 专注《零基础学编程系列》https://cxyxy.blog.csdn.net/article/details/121134634
 * 包含：Java | 安卓 | 前端 | Flutter | iOS | 小程序 | 鸿蒙
 * 公众号：花生皮编程
 */
public final class TorchUtils {
    private static CameraManager manager;
    private static Context mContext;
    private static boolean status;

    public final void init(Context context) {
        mContext = context;
        manager = (CameraManager) mContext.getSystemService(Context.CAMERA_SERVICE);
    }

    public final void open() {
        if (status) { //如果已经是打开状态，不需要打开
            return;
        }
        try {
            manager.setTorchMode("0", true);
        } catch (Exception e) {
            e.printStackTrace();
        }
        status = true; //记录手电筒状态为打开
    }

    public final void close() {
        if (!status) { //如果已经是关闭状态，不需要打开
            return;
        }
        try {
            manager.setTorchMode("0", false);
        } catch (CameraAccessException e) {
            e.printStackTrace();
        }
        status = false; //记录手电筒状态为关闭
    }
}
